/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package byblos.apresentacao.usuario;

import byblos.apresentacao.idioma.InterceptadorIdioma;
import byblos.negocio.usuario.Usuario;
import byblos.persistencia.DAO;
import java.util.List;
import org.vraptor.annotations.Component;
import org.vraptor.annotations.InterceptedBy;
import org.vraptor.annotations.Logic;
import org.vraptor.annotations.Out;
import org.vraptor.annotations.Parameter;

/**
 *
 * @author helena
 */
@Component
@InterceptedBy(value = {InterceptadorIdioma.class, InterceptadorCategoriaUsuario.class})
public class UsuarioComponent {

    @Out
    private List<Usuario> usuarios;
    @Out
    @Parameter(create = true)
    private Usuario usuario;

    public void listar() {
        usuarios = new DAO().listar(Usuario.class);
    }

    @Logic(parameters = {"id"})
    public void editar(int id) {
        if (id == 0) {
            usuario = new Usuario();
        } else {
            usuario = new DAO().localizar(Usuario.class, id);
        }
    }

    public void salvar() {
        System.out.println("=================================salvando usuario " + usuario);
        try {
            usuario.setUsuario(usuario.getUsuario().toLowerCase());
            new DAO().salvar(usuario);
        } catch (Throwable t) {
            t.printStackTrace();
        }
    }

    @Logic(parameters = {"id"})
    public void remover(int id) {
        Usuario usuario = new DAO().localizar(Usuario.class, id);
        new DAO().remover(usuario);
    }
}
